package com.aso114.project.util.retrofit;

import com.aso114.project.base.BaseBean;
import com.aso114.project.bean.BannerBean;
import com.aso114.project.bean.CityInfoBean;
import com.aso114.project.bean.H5Entity;
import com.aso114.project.bean.HistoryBean;
import com.aso114.project.bean.Login;
import com.aso114.project.bean.LoginBean;
import com.aso114.project.bean.NeednoticeBean;
import com.aso114.project.bean.News;
import com.aso114.project.bean.PhoneBean;
import com.aso114.project.bean.QuestionBean;
import com.aso114.project.bean.QuestionUserListBean;
import com.aso114.project.bean.TrueQuestionBean;
import com.aso114.project.bean.UserInfoBean;
import com.aso114.project.bean.VerificationCodeBean;

import java.util.List;
import java.util.Map;

import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import rx.Observable;

/**
 * username:Created by hsj on 2016/10/12 0012.
 * class：
 * 类描述：服务器接口
 */

public interface ApiStores {

    /**
     * 是否正式服
     */
    boolean IS_ONLINE = true;

    //正式
    String BaseURL_online = "http://examapi.sjsj.cn";
    //测试
    String BaseURL_offline = "http://examapi.yunxiapi.com";//

    String API_SERVER_URL = IS_ONLINE ? BaseURL_online : BaseURL_offline;

    /*** *************************  公共接口 *************************************/


    /***
     *   获取手机是否存在
     */
    @GET("/")
    Observable<BaseBean<PhoneBean>> getPhone(@QueryMap() Map<String, String> map);
    /***
     *   获取验证码
     */
    @POST("/")
    Observable<BaseBean<VerificationCodeBean>> getVerificationCode(@Body  RequestBody map);
    /***
     *   登录
     */
    @POST("/")
    Observable<BaseBean<LoginBean>> getLogin(@Body  RequestBody map);
    /***
     *   获取个人信息
     */
    @GET("/")
    Observable<BaseBean<UserInfoBean>> getUserInfo(@QueryMap() Map<String, String> map);
    /***
     *   设置个人信息
     */
    @POST("/")
    Observable<BaseBean<UserInfoBean>> setUserInfo(@Body  RequestBody map);
    /***
     *   获取城市接口列表
     */
    @GET("/")
    Observable<BaseBean<List<CityInfoBean>>> getCityInfo(@QueryMap() Map<String, String> map);
    /***
     *   获取行测banner
     */
    @GET("/")
    Observable<BaseBean<List<BannerBean>>> getaptiude_banner(@QueryMap() Map<String, String> map);
    /***
     *   真题模考各个类别接口
     */
    @GET("/")
    Observable<BaseBean<List<TrueQuestionBean>>> get_true_question(@QueryMap() Map<String, String> map);

    /***
     *   保存考区ID
     */
    @POST("/")
    Observable<BaseBean> get_save_arid(@QueryMap() Map<String, String> map);

    /***
     *   获取题库
     */
    @GET("/")
    Observable<BaseBean<QuestionBean>> get_question_bank(@QueryMap() Map<String, String> map);

    /***
     *   章节练习列表
     */
    @GET("/")
    Observable<BaseBean<List<QuestionUserListBean>>> getSpecialTreeList(@QueryMap() Map<String, String> map);

    /***
     *   获取须知内容
     */
    @GET("/")
    Observable<BaseBean<NeednoticeBean>> getneedcontect(@QueryMap() Map<String, String> map);

    /***
     *   提交试卷
     */
    @POST("/")
    Observable<BaseBean> post_paper(@Body RequestBody map);
    /***
     *   提交收藏
     */
    @POST("/")
    Observable<BaseBean> setCollect(@Body RequestBody map);
    /***
     *   删除收藏
     */
    @POST("/")
    Observable<BaseBean> delCollect(@Body RequestBody map);
    /***
     *   获取收藏列表
     */
    @GET("/")
    Observable<BaseBean<QuestionBean>> getCollect(@QueryMap() Map<String, String> map);

    /***
     *   获取章节练习题库
     */
    @GET("/")
    Observable<BaseBean<QuestionBean>> get_chapter_bank(@QueryMap() Map<String, String> map);

    /***
     *   获取练习历史列表
     */
    @GET("/")
    Observable<BaseBean<HistoryBean>> get_history_list(@QueryMap() Map<String, String> map);

    /***
     *   获取练习历史题库
     */
    @GET("/")
    Observable<BaseBean<QuestionBean>> get_history_bank(@QueryMap() Map<String, String> map);

    /***
     *   获取成绩列表
     */
    @GET("/")
    Observable<BaseBean<HistoryBean>> get_result_list(@QueryMap() Map<String, String> map);

    /***
     *   获取考点练习题库
     */
    @GET("/")
    Observable<BaseBean<QuestionBean>> get_testing_bank(@QueryMap() Map<String, String> map);

    /***
     *   错题练习
     */
    @GET("/")
    Observable<BaseBean<QuestionBean>> get_error_exercise(@QueryMap() Map<String, String> map);

    /***
     *   删除错题
     */
    @POST("/")
    Observable<BaseBean> del_error(@Body RequestBody map);

}
